package models

import (
	"driver_srv/basic/config"
	"gorm.io/gorm"
	"time"
)

// 线路表
type Route struct {
	Id         int64          `gorm:"column:id;type:bigint;comment:线路ID;primaryKey;not null;" json:"id"`                                  //线路ID
	UserId     int64          `gorm:"column:user_id;type:bigint;comment:用户ID;not null;" json:"user_id"`                                   // 用户ID
	DriverId   int64          `gorm:"column:driver_id;type:bigint;comment:司机ID;not null;" json:"driver_id"`                               // 司机ID
	RouteName  string         `gorm:"column:route_name;type:varchar(20);comment:线路名称;not null;" json:"route_name"`                        // 线路名称
	RouteCode  string         `gorm:"column:route_code;type:varchar(10);comment:线路编号;not null;" json:"route_code"`                        // 线路编号
	StartPoint string         `gorm:"column:start_point;type:varchar(20);comment:线路起点;not null;" json:"start_point"`                      // 线路起点
	EndPoint   string         `gorm:"column:end_point;type:varchar(20);comment:线路终点;not null;" json:"end_point"`                          // 线路终点
	RouteTags  string         `gorm:"column:route_tags;type:varchar(100);comment:线路标签;" json:"route_tags"`                                // 线路标签
	CreatedAt  time.Time      `gorm:"column:created_at;type:datetime;comment:创建时间;not null;default:CURRENT_TIMESTAMP;" json:"created_at"` // 创建时间
	UpdatedAt  time.Time      `gorm:"column:updated_at;type:datetime;comment:更新时间;not null;default:CURRENT_TIMESTAMP;" json:"updated_at"` // 更新时间
	DeleteTime gorm.DeletedAt `gorm:"column:delete_time;type:datetime;comment:删除时间（软删除标记）;default:NULL;" json:"delete_time"`
}

func (rt *Route) TableName() string {
	return "route"
}

// 创建线路
func (rt *Route) CreateRoute() error {
	return config.DB.Create(&rt).Error
}

// 查询线路ID
func (rt *Route) GetRouteId(routeId int64) error {
	return config.DB.Where("id = ?", routeId).Limit(1).Find(&rt).Error
}
